<?php

namespace Sisesporte\Entity;

class UtilsEntity {
    
    /**
     * Transforma data no formato d/m/Y em objeto DateTime
     *
     * @param $dataIn
     * @return DateTime
     */
    protected function formataDateFromDateTime($dataIn)
    {
        if ($dataIn) {
                list($day, $month, $year) = explode("/", $dataIn);
            return new \DateTime(date($year."-".$month."-".$day));
        }else{
                return NULL;
        }
    }

    /**
     * Transforma objeto DateTime no formato date d/m/Y
     *
     * @param $dateTimeIn
     * @return Date
     */
    protected function formataDateTimeToDate($dataTimeIn)
    {
        if (is_object($dataTimeIn)) {
                return $dataTimeIn->format('d/m/Y');
        }else{
                return NULL;
        }
    }

    /**
     * Transforma valores 999.999,99 para 999999.99 para gravação no Banco
     *
     * @param $dateTimeIn
     * @return Date
     */
    protected function formataValorToBanco($valorIn)
    {
        if ($valorIn) {
                $valorIn = str_replace( '.', '', $valorIn );
                $valorIn = str_replace( ',', '', $valorIn );

                return (int) $valorIn * 0.01;
        }else{
                return NULL;
        }
    }

    /**
     * Transforma valores de Banco de Dados 999999.99 para 999.999,99 para apresentação
     *
     * @param $dateTimeIn
     * @return Date
     */
    protected function formataVlBancoToApresentacao($valorOut)
    {
        if ($valorOut) {
                return number_format($valorOut, 2, ',', '.');
        }else{
                return NULL;
        }
    }

}
